import pandas as pd
import json

# 读取CSV文件
df = pd.read_csv('data_for_csv.csv')

# 指令模板列表
instructions = [
    "请阅读以下文章并提供全面的评审，包括评分、关键亮点和一般评论。\n\n文章：{data}",
    "详细分析以下文章。提供评分，识别出具体的好词好句，并给出关于文章的一般评论。\n\n文章：{data}",
    "评估以下文章，重点关注语言的使用。提供评分，突出使用的好词好句，并对语言使用给出评论。\n\n文章：{data}",
    "请审查文章，重点关注其结构和组织。提供评分，列出任何显著的词句，并对结构给出评论。\n\n文章：{data}",
    "阅读以下文章并提供反馈，重点关注内容和主题。给出评分，记录任何好词好句，并对内容提供评论。\n\n文章：{data}",
    "审查文章的修订版本。提供评分和详细反馈，突出任何改进和需要增强的部分。\n\n修订后的文章：{revised}",
    "对以下文章进行批判性评审。包括评分，识别出好词好句，并提供建设性的批评。\n\n文章：{data}"
]

# 生成SFT数据
sft_data = []
for _, row in df.iterrows():
    for instruction_template in instructions:
        instruction = instruction_template.format(data=row['data'], revised=row['revised'])
        output = {
            "score": row['score'],
            "nice_words": row['nice_words'],
            "nice_sentences": row['nice_sentences'],
            "comments": row['comments']
        }
        sft_data.append({
            "instruction": instruction,
            "input": "",
            "output": json.dumps(output)  # 将 output 转换为字符串形式
        })

# 将SFT数据保存为JSON文件
with open('english_teacher_sft_data.json', 'w') as f:
    json.dump(sft_data, f, indent=4)
